-
Notifications
You must be signed in to change notification settings - Fork 960
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
E-Ink Screensaver #3477
E-Ink Screensaver #3477
Conversation
avoid future confusion with "Screen Paused" screen
The frame shown during deep sleep is now also passed through showScreensaverFrames()
I think it's a great idea, but I don't like that all the useful information other than the version goes away. Maybe, the screen could stay there, but just have text in the middle of the screen over everything that says "Screen paused"? So the info on the screen stays. |
Is there any information in particular that you feel would be useful to remain on screen?
I think what you're talking about might already be implemented with #3316 At this point I'm thinking that the most diplomatic solution might be to make the screensaver behavior customizable by end-users via the app / cli. I've got this working tonight as a bit of proof of concept, but I'll have to talk to someone more knowledgable about whether it's an appropriate option, and about would it would take to expose the setting in the mobile apps. |
I think it would be useful to have the node id remain visible on the screensaver. If you have multiple devices sleeping, you can determine at glance which is which. |
Good call! I'll look at getting that onto the icon screen, maybe replacing the version number? The new plan is: offer users a choice in the display preferences.
Not sure if it'll go ahead or not; just waiting for input from the dev-team about it. |
OLEDDISPLAY_COLOR is inverted. Result of light-mode on E-Ink vs dark-mode on OLED?
Node ID, "last 4 of Node ID" or short-name? I'm thinking maybe short-name and "last 4 of NodeID"? |
I think any id that fits nicely on the display. Last 4 is fine, short name is possibly friendlier. As long as sleeping units can be identified, you’re golden. |
Following feedback on meshtastic/protobufs#474, scope of this pull-request is reduced. A single screensaver behavior will be implemented. Abandoned work-in-progress is mothballed as eink-screensaver-configurable branch. After some time spent yesterday developing the different screensaver options, my personal opinion now is that the subtle overlay suggestion is best #3477 (comment). This also meets the criteria that nodes should be identifiable with the screen off #3477 (comment). |
b1e7c91
to
719026d
Compare
Any other issues can be marked in a similar way, then handled in code where relevant
Tested Heltec Wireless Paper V1.0 and V1.1 |
No, it was more than that. I set the screen timeout on 60 seconds, so I waited at least that. I just tested with several minutes in between and it still happens.
To be honest for me displaying it on the screen is not so important, you can also mark the device itself with a sticker. I'm fine with the current approach. |
Thanks for that info. I think I might have a fix, but not sure just yet. I should actually have a T-Echo turning up in the next day or two, so I can check then whether I've solved it or not.
I've modified the design slightly now to include short name, and I'm fairly pleased with how it looks. I'll push that in the near-future too. There's a slight hold up on those final tweaks: I found a low-down bug in the system. When the screen class turns off, there are no more calls to A quick fix for this would be to use a blocking fast-refresh here, but I'd rather try tackle the problem at its source. I'm looking into inheriting the OSThread class, to allow polling after the screen is "turned off". |
There is a variation of osthteads called the notified worker. It will not loop but execute a task when externally notified. Maybe this one is better suited. |
(Hopefully)
Now displays short name
(No impact to code, but avoids future issues)
Should have just let it go, but here we are..
f5fdbe0
to
8c5afa0
Compare
And for the third time tonight, I'm going to claim that everything is final now. Except that this time I'm going to bed so I have to leave it alone.. |
On E-Ink devices, when screen-timeout is reached, a "screensaver frame" is drawn before updates are paused.
This prevents misleading, out-of-date information remaining on the display.
Addresses #3226
Tested on Heltec Wireless Paper V1.0 and V1.1. Would be good to confirm that everything is working as expecting on other E-Ink devices too.
(It's not toasters, I swear)
EInkScreensaver.mp4